﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NetFrameworkExtensions.Enterprise.Security
{
  public interface IOperatorPrincipal
  {
    bool IsSuperOperator { get; }

    bool HasPermission(IAuthorizableOperation operation);

    bool HasPermissionToAccess(string entityName);

    bool HasPermissionToModify(string entityName);

    bool HasPermissionToExecute(string entityName, string commandName);

    void CheckPermission(IAuthorizableOperation operation);

    void CheckPermissionToAccess(string entityName);

    void CheckPermissionToModify(string entityName);

    void CheckPermissionToExecute(string entityName, string commandName);
  }
}
